package com.baosight.risk.api.xtaa.sequences;

import java.util.List;
import java.util.Map;

import com.baosight.risk.base.service.BaseService;
import com.baosight.risk.service.xtaa.sequences.entity.XtaaSequences;

/**
 * 类 名: IXtaaSequencesService
 * 描 述: 单据编码生成
 * 作 者: 黎秋荣
 * 创 建：2019年04月15日
 * 历 史: (版本) 作者 时间 注释
 */
public interface IXtaaSequencesService extends BaseService<XtaaSequences> {

    /**
     * 风险自评生成流水号生成流水编号
     *
     * @param groupFlag   分组标识，清单库和自评流水分组
     * @param enCode      编号规则ID
     * @param compCode    单位
     * @param bigcategory 大分类
     * @param category    分类
     * @return 流水编号
     */
    String generateCodeById(String groupFlag, String enCode, String compCode, String bigcategory, String category);


    Integer insertSequences(XtaaSequences sequences);

    Integer updateSequences(XtaaSequences sequences);

    /**
     * 查询编号规则
     *
     * @param sequences 编号规则
     * @return 编号规则
     */
    List<XtaaSequences> selectSequences(XtaaSequences sequences);

    /**
     * 根据ids查询编号规则
     *
     * @param ids 编号规则ID
     * @return 编号规则集合
     */
    List<String> getSequencesByIds(List<String> ids);

    /**
     * 根据ids删除编号规则
     *
     * @param ids 编号规则ID
     * @return 编号规则集合
     */
    Integer deleteByIds(List<String> ids, String status);

    List<Map<String, String>> getByEnCode(String enCode);

    /**
     * 保存修改后的编码
     *
     * @param maps
     * @return
     */
    Integer saveCode(List<Map<String, String>> maps);

    /**
     * 刪除編碼
     *
     * @param enCode
     * @return
     */
    Integer deleteCodes(List<String> enCodes);

    List<Map<Object, Object>> selectByCode(String prefix,String enCode);
}